/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.unmsm.pacis.shca.domain.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

/**
 *
 * @author solriver
 */
@Entity
@Table(name = "visita_domiciliaria", catalog = "bdshca")
@NamedQueries({
    @NamedQuery(name = "VisitaDomiciliaria.findAll", query = "SELECT v FROM VisitaDomiciliaria v"),
    @NamedQuery(name = "VisitaDomiciliaria.findByIdVisitaDomiciliaria", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.idVisitaDomiciliaria = :idVisitaDomiciliaria"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisFecha", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visFecha = :visFecha"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisResultado", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visResultado = :visResultado"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisProximaVisita", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visProximaVisita = :visProximaVisita"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisProblemaComunidad", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visProblemaComunidad = :visProblemaComunidad"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisRiesgoCaida", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visRiesgoCaida = :visRiesgoCaida"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisRiesgoCaidaDescripcion", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visRiesgoCaidaDescripcion = :visRiesgoCaidaDescripcion"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisResultadoPuntaje", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visResultadoPuntaje = :visResultadoPuntaje"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisObservaciones", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visObservaciones = :visObservaciones"),
    @NamedQuery(name = "VisitaDomiciliaria.findByVisApoyoFamilia", query = "SELECT v FROM VisitaDomiciliaria v WHERE v.visApoyoFamilia = :visApoyoFamilia")})
public class VisitaDomiciliaria implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_visita_domiciliaria")
    private Integer idVisitaDomiciliaria;
    @Column(name = "vis_fecha")
    @Temporal(TemporalType.DATE)
    private Date visFecha;
    @Column(name = "vis_resultado")
    private Short visResultado;
    @Column(name = "vis_proxima_visita")
    @Temporal(TemporalType.DATE)
    private Date visProximaVisita;
    @Column(name = "vis_problema_comunidad")
    private String visProblemaComunidad;
    @Column(name = "vis_riesgo_caida")
    private Boolean visRiesgoCaida;
    @Column(name = "vis_riesgo_caida_descripcion")
    private String visRiesgoCaidaDescripcion;
    @Column(name = "vis_resultado_puntaje")
    private Integer visResultadoPuntaje;
    @Column(name = "vis_observaciones")
    private String visObservaciones;
    @Column(name = "vis_apoyo_familia")
    private String visApoyoFamilia;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<SeguroMedico> seguroMedicoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<DatoSocioeconomico> datoSocioeconomicoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<RiesgoFamiliar> riesgoFamiliarList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<ObservacionSalud> observacionSaludList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<Instruccion> instruccionList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<Ocupacion> ocupacionList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<DatoViviendaEntorno> datoViviendaEntornoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<HistorialDomicilio> historialDomicilioList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<PaqueteFamilia> paqueteFamiliaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private List<HistorialGrupo> historialGrupoList;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "visIdVisitaDomiciliaria")
    private Seguimiento seguimiento;
    @JoinColumn(name = "ten_id_tenencia_animal", referencedColumnName = "id_tenencia_animal")
    @ManyToOne(optional = false)
    private TenenciaAnimal tenIdTenenciaAnimal;
    @JoinColumn(name = "fic_id_ficha_familiar", referencedColumnName = "id_ficha_familiar")
    @ManyToOne
    private FichaFamiliar ficIdFichaFamiliar;

    public VisitaDomiciliaria() {
    }

    public VisitaDomiciliaria(Integer idVisitaDomiciliaria) {
        this.idVisitaDomiciliaria = idVisitaDomiciliaria;
    }

    public Integer getIdVisitaDomiciliaria() {
        return idVisitaDomiciliaria;
    }

    public void setIdVisitaDomiciliaria(Integer idVisitaDomiciliaria) {
        this.idVisitaDomiciliaria = idVisitaDomiciliaria;
    }

    public Date getVisFecha() {
        return visFecha;
    }

    public void setVisFecha(Date visFecha) {
        this.visFecha = visFecha;
    }

    public Short getVisResultado() {
        return visResultado;
    }

    public void setVisResultado(Short visResultado) {
        this.visResultado = visResultado;
    }

    public Date getVisProximaVisita() {
        return visProximaVisita;
    }

    public void setVisProximaVisita(Date visProximaVisita) {
        this.visProximaVisita = visProximaVisita;
    }

    public String getVisProblemaComunidad() {
        return visProblemaComunidad;
    }

    public void setVisProblemaComunidad(String visProblemaComunidad) {
        this.visProblemaComunidad = visProblemaComunidad;
    }

    public Boolean getVisRiesgoCaida() {
        return visRiesgoCaida;
    }

    public void setVisRiesgoCaida(Boolean visRiesgoCaida) {
        this.visRiesgoCaida = visRiesgoCaida;
    }

    public String getVisRiesgoCaidaDescripcion() {
        return visRiesgoCaidaDescripcion;
    }

    public void setVisRiesgoCaidaDescripcion(String visRiesgoCaidaDescripcion) {
        this.visRiesgoCaidaDescripcion = visRiesgoCaidaDescripcion;
    }

    public Integer getVisResultadoPuntaje() {
        return visResultadoPuntaje;
    }

    public void setVisResultadoPuntaje(Integer visResultadoPuntaje) {
        this.visResultadoPuntaje = visResultadoPuntaje;
    }

    public String getVisObservaciones() {
        return visObservaciones;
    }

    public void setVisObservaciones(String visObservaciones) {
        this.visObservaciones = visObservaciones;
    }

    public String getVisApoyoFamilia() {
        return visApoyoFamilia;
    }

    public void setVisApoyoFamilia(String visApoyoFamilia) {
        this.visApoyoFamilia = visApoyoFamilia;
    }

    public List<SeguroMedico> getSeguroMedicoList() {
        return seguroMedicoList;
    }

    public void setSeguroMedicoList(List<SeguroMedico> seguroMedicoList) {
        this.seguroMedicoList = seguroMedicoList;
    }

    public List<DatoSocioeconomico> getDatoSocioeconomicoList() {
        return datoSocioeconomicoList;
    }

    public void setDatoSocioeconomicoList(List<DatoSocioeconomico> datoSocioeconomicoList) {
        this.datoSocioeconomicoList = datoSocioeconomicoList;
    }

    public List<RiesgoFamiliar> getRiesgoFamiliarList() {
        return riesgoFamiliarList;
    }

    public void setRiesgoFamiliarList(List<RiesgoFamiliar> riesgoFamiliarList) {
        this.riesgoFamiliarList = riesgoFamiliarList;
    }

    public List<ObservacionSalud> getObservacionSaludList() {
        return observacionSaludList;
    }

    public void setObservacionSaludList(List<ObservacionSalud> observacionSaludList) {
        this.observacionSaludList = observacionSaludList;
    }

    public List<Instruccion> getInstruccionList() {
        return instruccionList;
    }

    public void setInstruccionList(List<Instruccion> instruccionList) {
        this.instruccionList = instruccionList;
    }

    public List<Ocupacion> getOcupacionList() {
        return ocupacionList;
    }

    public void setOcupacionList(List<Ocupacion> ocupacionList) {
        this.ocupacionList = ocupacionList;
    }

    public List<DatoViviendaEntorno> getDatoViviendaEntornoList() {
        return datoViviendaEntornoList;
    }

    public void setDatoViviendaEntornoList(List<DatoViviendaEntorno> datoViviendaEntornoList) {
        this.datoViviendaEntornoList = datoViviendaEntornoList;
    }

    public List<HistorialDomicilio> getHistorialDomicilioList() {
        return historialDomicilioList;
    }

    public void setHistorialDomicilioList(List<HistorialDomicilio> historialDomicilioList) {
        this.historialDomicilioList = historialDomicilioList;
    }

    public List<PaqueteFamilia> getPaqueteFamiliaList() {
        return paqueteFamiliaList;
    }

    public void setPaqueteFamiliaList(List<PaqueteFamilia> paqueteFamiliaList) {
        this.paqueteFamiliaList = paqueteFamiliaList;
    }

    public List<HistorialGrupo> getHistorialGrupoList() {
        return historialGrupoList;
    }

    public void setHistorialGrupoList(List<HistorialGrupo> historialGrupoList) {
        this.historialGrupoList = historialGrupoList;
    }

    public Seguimiento getSeguimiento() {
        return seguimiento;
    }

    public void setSeguimiento(Seguimiento seguimiento) {
        this.seguimiento = seguimiento;
    }

    public TenenciaAnimal getTenIdTenenciaAnimal() {
        return tenIdTenenciaAnimal;
    }

    public void setTenIdTenenciaAnimal(TenenciaAnimal tenIdTenenciaAnimal) {
        this.tenIdTenenciaAnimal = tenIdTenenciaAnimal;
    }

    public FichaFamiliar getFicIdFichaFamiliar() {
        return ficIdFichaFamiliar;
    }

    public void setFicIdFichaFamiliar(FichaFamiliar ficIdFichaFamiliar) {
        this.ficIdFichaFamiliar = ficIdFichaFamiliar;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idVisitaDomiciliaria != null ? idVisitaDomiciliaria.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof VisitaDomiciliaria)) {
            return false;
        }
        VisitaDomiciliaria other = (VisitaDomiciliaria) object;
        if ((this.idVisitaDomiciliaria == null && other.idVisitaDomiciliaria != null) || (this.idVisitaDomiciliaria != null && !this.idVisitaDomiciliaria.equals(other.idVisitaDomiciliaria))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "pe.edu.unmsm.pacis.shca.domain.entity.VisitaDomiciliaria[ idVisitaDomiciliaria=" + idVisitaDomiciliaria + " ]";
    }
    
}
